 
; ROBOT 'KILLER'

INIT
 IF X>128 GOTO INITX
 IF Y>128 GOTO MOVEMINUSY
          GOTO MOVEPLUSX
INITX
 IF Y>128 GOTO MOVEMINUSX
          GOTO MOVEPLUSY


MOVEPLUSX
 IF X>240 GOTO INIT
   0 TO SPEEDY
 200 TO SPEEDX
  90 TO A

 IF Y>128 GOTO APX
 180 TO B
 187 TO AIM
 GOTO MPX
APX
   0 TO B
 353 TO AIM

MPX
 GOSUB SCAN
 90 TO RADAR
 IF RADAR<0  GOTO FIRE
 IF X>205    GOTO MOVEPLUSY
 IF SPEEDX=0 GOTO INIT 
 GOTO MPX

MOVEPLUSY
 IF Y>240 GOTO INIT
 0   TO SPEEDX
 200 TO SPEEDY
 180 TO A

 IF X>128 GOTO APY
 90 TO B
 83 TO AIM
 GOTO MPY
APY
 270 TO B
 277 TO AIM

MPY
 GOSUB SCAN
 180 TO RADAR
 IF RADAR<0  GOTO FIRE
 IF Y>205    GOTO MOVEMINUSX
 IF SPEEDY=0 GOTO INIT
 GOTO MPY

MOVEMINUSX
 IF X<15 GOTO INIT
    0 TO SPEEDY
 -200 TO SPEEDX
  270 TO A

 IF Y>128 GOTO AMX
 180 TO B
 173 TO AIM
 GOTO MMX
AMX
 0 TO B
 7 TO AIM

MMX
 GOSUB SCAN
 270 TO RADAR
 IF RADAR<0  GOTO FIRE
 IF X<50     GOTO MOVEMINUSY
 IF SPEEDX=0 GOTO INIT
 GOTO MMX

MOVEMINUSY
 IF Y<15 GOTO INIT
    0 TO SPEEDX
 -200 TO SPEEDY
    0 TO A

 IF X>128 GOTO AMY
 90 TO B
 97 TO AIM
 GOTO MMY
AMY
 270 TO B
 263 TO AIM

MMY
 GOSUB SCAN
 0 TO RADAR
 IF RADAR<0  GOTO FIRE
 IF Y<50     GOTO MOVEPLUSX
 IF SPEEDY=0 GOTO INIT
 GOTO MMY

 GOTO MOVEPLUSX


SCAN
 B TO RADAR
 IF RADAR>0 ENDSUB
 0-RADAR TO SHOT
 ENDSUB

FIRE
 A TO AIM
 S TO SHOT
 IF A=  0 GOTO MOVEPLUSX
 IF A= 90 GOTO MOVEPLUSY
 IF A=180 GOTO MOVEMINUSX
 IF A=270 GOTO MOVEMINUSY
 GOTO INIT

